package com.xjrsoft.module.customerTwo.AppManage.sales_order.vo;

import java.math.BigDecimal;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import com.xjrsoft.common.Enum.TransDataType;
import com.xjrsoft.common.annotation.DataTrans;
import io.swagger.annotations.ApiModel;

/**
 * 视图实体类
 *
 * @author lisen
 * @since 2024-04-25
 */
@Data
@ApiModel(value = "列表SalesOrderVo对象", description = "列表SalesOrderVo对象")
public class SalesOrderListVo {

    @JsonProperty("id")
    private Integer id;

    @JsonProperty("business_opportunity_id")
    @DataTrans(dataType = TransDataType.DATA_SOURCE, dataCode = "088300080f8054153a7cd61e7a22cdb2", savedField = "id", showField = "id", multi = false)
    private String businessOpportunityId;

    @JsonProperty("business_opportunity_number")
    private String businessOpportunityNumber;

    @JsonProperty("assembly_id")
    private String assemblyId;

    @JsonProperty("order_number")
    private String orderNumber;

    @JsonProperty("customer_id")
    private String customerId;

    @JsonProperty("customer_code")
    private String customerCode;

    @JsonProperty("contactor_id")
    @DataTrans(dataType = TransDataType.DATA_ITEM, dataCode = "SubassemblyClass", multi = false)
    private String contactorId;

    @JsonProperty("contactor_name")
    private String contactorName;

    @JsonProperty("contactor_phone")
    private String contactorPhone;

    @JsonProperty("create_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime createDate;

    @JsonProperty("sales_department_id")
    @DataTrans(dataType = TransDataType.DEPARTMENT, multi = false)
    private String salesDepartmentId;

    @JsonProperty("sales_man_id")
    @DataTrans(dataType = TransDataType.USER, multi = true)
    private String salesManId;


    @JsonProperty("contract_number")
    private String contractNumber;


    @JsonProperty("contract_name")
    private String contractName;

    @JsonProperty("contract_start_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime contractStartDate;

    @JsonProperty("contract_end_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime contractEndDate;

    @JsonProperty("tax_amount")
    private BigDecimal taxAmount;

    @JsonProperty("none_tax_amount")
    private BigDecimal noneTaxAmount;

    @JsonProperty("contract_instruction")
    private String contractInstruction;

    @JsonProperty("sales_assembly_id")
    @DataTrans(dataType = TransDataType.DATA_ITEM, dataCode = "SubassemblyType", multi = false)
    private String salesAssemblyId;

    @JsonProperty("state")
    private Integer state;

    @JsonProperty("auditor_id")
    @DataTrans(dataType = TransDataType.USER, multi = true)
    private String auditorId;

    @JsonProperty("audit_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime auditDate;

    @JsonProperty("reject_reason")
    private String rejectReason;

    @JsonProperty("contract_state")
    private Integer contractState;

    @JsonProperty("flowStatus")
    private String flowStatus;

    @JsonProperty("nwfSchemeinfoId")
    private String nwfSchemeinfoId;

    @JsonProperty("formId")
    private String formId;

    @JsonProperty("deploymentId")
    private String deploymentId;

    @JsonProperty("general_contractor")
    private String generalContractor;
}
